'\" te
.\" Copyright (c) 2004 Sun Microsystems, Inc.  All Rights Reserved.
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH VNI 4D "Jul 18, 2004"
.SH NAME
vni \- STREAMS virtual network interface driver
.SH DESCRIPTION
.sp
.LP
The \fBvni\fR pseudo device is a multi-threaded, loadable, clonable, STREAMS
pseudo-device supporting the connectionless Data Link Provider Interface
\fBdlpi\fR(4P) Style 2. Note that DLPI is intended to interact with IP, meaning
that DLPI access to applications is not supported. (For example, snoop fails on
the \fBvni\fR interface.)
.sp
.LP
The \fBvni\fR device is a software-only interface and does not send or receive
data. The device provides a DLPI upper interface that identifies itself to IP
with a private media type. It can be configured via \fBifconfig\fR(8) and can
have IP addresses assigned to it, making aliases possible.
.sp
.LP
The \fBvni\fR pseudo device is particularly useful in hosting an IP address
when used in conjunction with the 'usesrc' \fBifconfig\fR option (see
\fBifconfig\fR(8) for examples).  The logical instances of the device can also
be used to host addresses as an alternative to hosting them over the loopback
interface.
.sp
.LP
Multicast is not supported on this device. More specifically, the following
options return an error when used with an address specified on \fBvni\fR:
IP_MULTICAST_IF, IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IPV6_MULTICAST_IF,
IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP. In addition, broadcast is not supported.
.sp
.LP
Because there is no physical hardware configured below it, no traffic can be
received through nor transmitted on a virtual interface. All packet
transmission and reception is accomplished with existing physical interfaces
and tunnels. Because applications that deal with packet transmission and
reception (such as packet filters) cannot filter traffic on virtual interfaces,
you cannot set up a packet filter on a virtual interface. Instead, you should
configure the policy rules to apply to the physical interfaces and tunnels, and
if necessary, use the virtual IP addresses themselves as part of the rule
configuration. Also, note that the virtual interface cannot be part of an IP
multipathing (IPMP) group.
.SH FILES
.sp
.ne 2
.na
\fB\fB/dev/vni\fR\fR
.ad
.RS 12n
64-bit ELF kernel driver
.RE

.SH SEE ALSO
.sp
.LP
.BR ip (4P),
.BR ip6 (4P),
.BR ifconfig (8),
.BR in.mpathd (8)
